[INFO] fetching crate quick_maths 0.2.1...
[INFO] checking quick_maths-0.2.1 against master#158f00a1c5175648af6f6099b075f78d1d014a28 for pr-121251
[INFO] extracting crate quick_maths 0.2.1 into /workspace/builds/worker-7-tc1/source
[INFO] validating manifest of crates.io crate quick_maths 0.2.1 on toolchain 158f00a1c5175648af6f6099b075f78d1d014a28
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate quick_maths 0.2.1
[INFO] finished tweaking crates.io crate quick_maths 0.2.1
[INFO] tweaked toml for crates.io crate quick_maths 0.2.1 written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a0fd8c9c2803481a56e3e29790a5b40c73ae75a82bae71fff902b2c5ee68d4cc
[INFO] running `Command { std: "docker" "start" "-a" "a0fd8c9c2803481a56e3e29790a5b40c73ae75a82bae71fff902b2c5ee68d4cc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a0fd8c9c2803481a56e3e29790a5b40c73ae75a82bae71fff902b2c5ee68d4cc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a0fd8c9c2803481a56e3e29790a5b40c73ae75a82bae71fff902b2c5ee68d4cc", kill_on_drop: false }`
[INFO] [stdout] a0fd8c9c2803481a56e3e29790a5b40c73ae75a82bae71fff902b2c5ee68d4cc
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 431513491da0060381ddc39568d1b416c03058fcaad2d563b173b38c56c4100e
[INFO] running `Command { std: "docker" "start" "-a" "431513491da0060381ddc39568d1b416c03058fcaad2d563b173b38c56c4100e", kill_on_drop: false }`
[INFO] [stderr]    Compiling num-traits v0.2.18
[INFO] [stderr]    Compiling num-bigint v0.2.6
[INFO] [stderr]    Compiling num-complex v0.2.4
[INFO] [stderr]    Compiling num-rational v0.2.4
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking num-iter v0.1.44
[INFO] [stderr]     Checking num v0.2.1
[INFO] [stderr]     Checking quick_maths v0.2.1 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0557]: feature has been removed
[INFO] [stdout]  --> src/lib.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(const_generics, maybe_uninit_uninit_array, new_uninit, array_map)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^ feature has been removed
[INFO] [stdout]   |
[INFO] [stdout]   = note: removed in favor of `#![feature(adt_const_params)]` and `#![feature(generic_const_exprs)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0557]: feature has been removed
[INFO] [stdout]  --> src/lib.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(const_generics, maybe_uninit_uninit_array, new_uninit, array_map)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^ feature has been removed
[INFO] [stdout]   |
[INFO] [stdout]   = note: removed in favor of `#![feature(adt_const_params)]` and `#![feature(generic_const_exprs)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `array_map` has been stable since 1.55.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/lib.rs:2:67
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(const_generics, maybe_uninit_uninit_array, new_uninit, array_map)]
[INFO] [stdout]   |                                                                   ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `array_map` has been stable since 1.55.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/lib.rs:2:67
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(const_generics, maybe_uninit_uninit_array, new_uninit, array_map)]
[INFO] [stdout]   |                                                                   ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: mutable reference of mutable static is discouraged
[INFO] [stdout]   --> src/autodiff.rs:12:47
[INFO] [stdout]    |
[INFO] [stdout] 12 | fn tape_mut() -> &'static mut Tape { unsafe { &mut DEFAULT_TAPE } }
[INFO] [stdout]    |                                               ^^^^^^^^^^^^^^^^^ mutable reference of mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see issue #114447 <https://github.com/rust-lang/rust/issues/114447>
[INFO] [stdout]    = note: reference of mutable static is a hard error from 2024 edition
[INFO] [stdout]    = note: mutable statics can be written to by multiple threads: aliasing violations or data races will cause undefined behavior
[INFO] [stdout]    = note: `#[warn(static_mut_ref)]` on by default
[INFO] [stdout] help: mutable references are dangerous since if there's any other pointer or reference used for that static while the reference lives, that's UB; use `addr_of_mut!` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 12 | fn tape_mut() -> &'static mut Tape { unsafe { addr_of_mut!(DEFAULT_TAPE) } }
[INFO] [stdout]    |                                               ~~~~~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: shared reference of mutable static is discouraged
[INFO] [stdout]   --> src/autodiff.rs:13:39
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn tape() -> &'static Tape { unsafe { &DEFAULT_TAPE } }
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^ shared reference of mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see issue #114447 <https://github.com/rust-lang/rust/issues/114447>
[INFO] [stdout]    = note: reference of mutable static is a hard error from 2024 edition
[INFO] [stdout]    = note: mutable statics can be written to by multiple threads: aliasing violations or data races will cause undefined behavior
[INFO] [stdout] help: shared references are dangerous since if there's any kind of mutation of that static while the reference lives, that's UB; use `addr_of!` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn tape() -> &'static Tape { unsafe { addr_of!(DEFAULT_TAPE) } }
[INFO] [stdout]    |                                       ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: mutable reference of mutable static is discouraged
[INFO] [stdout]   --> src/autodiff.rs:12:47
[INFO] [stdout]    |
[INFO] [stdout] 12 | fn tape_mut() -> &'static mut Tape { unsafe { &mut DEFAULT_TAPE } }
[INFO] [stdout]    |                                               ^^^^^^^^^^^^^^^^^ mutable reference of mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see issue #114447 <https://github.com/rust-lang/rust/issues/114447>
[INFO] [stdout]    = note: reference of mutable static is a hard error from 2024 edition
[INFO] [stdout]    = note: mutable statics can be written to by multiple threads: aliasing violations or data races will cause undefined behavior
[INFO] [stdout]    = note: `#[warn(static_mut_ref)]` on by default
[INFO] [stdout] help: mutable references are dangerous since if there's any other pointer or reference used for that static while the reference lives, that's UB; use `addr_of_mut!` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 12 | fn tape_mut() -> &'static mut Tape { unsafe { addr_of_mut!(DEFAULT_TAPE) } }
[INFO] [stdout]    |                                               ~~~~~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: shared reference of mutable static is discouraged
[INFO] [stdout]   --> src/autodiff.rs:13:39
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn tape() -> &'static Tape { unsafe { &DEFAULT_TAPE } }
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^ shared reference of mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see issue #114447 <https://github.com/rust-lang/rust/issues/114447>
[INFO] [stdout]    = note: reference of mutable static is a hard error from 2024 edition
[INFO] [stdout]    = note: mutable statics can be written to by multiple threads: aliasing violations or data races will cause undefined behavior
[INFO] [stdout] help: shared references are dangerous since if there's any kind of mutation of that static while the reference lives, that's UB; use `addr_of!` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn tape() -> &'static Tape { unsafe { addr_of!(DEFAULT_TAPE) } }
[INFO] [stdout]    |                                       ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error; 3 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0557`.
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]    --> src/dynamics/tensor.rs:165:7
[INFO] [stdout]     |
[INFO] [stdout] 165 |   let v = Vec3::of(3.0);
[INFO] [stdout]     |       ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/dynamics/tensor.rs:167:7
[INFO] [stdout]     |
[INFO] [stdout] 167 |   let t = m.dyn_tensor();
[INFO] [stdout]     |       ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error; 5 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0557`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `quick_maths` (lib) due to 2 previous errors; 3 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `quick_maths` (lib test) due to 2 previous errors; 5 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "431513491da0060381ddc39568d1b416c03058fcaad2d563b173b38c56c4100e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "431513491da0060381ddc39568d1b416c03058fcaad2d563b173b38c56c4100e", kill_on_drop: false }`
[INFO] [stdout] 431513491da0060381ddc39568d1b416c03058fcaad2d563b173b38c56c4100e
[INFO] checking quick_maths-0.2.1 against try#b4fc5dbf0bc33be331f9d893db5b3a794f29724a+rustflags=-Dexplicit_range -Dtrait_impl_range -Wrange_syntax -Wrange_bounds for pr-121251
[INFO] extracting crate quick_maths 0.2.1 into /workspace/builds/worker-7-tc2/source
[INFO] validating manifest of crates.io crate quick_maths 0.2.1 on toolchain b4fc5dbf0bc33be331f9d893db5b3a794f29724a
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate quick_maths 0.2.1
[INFO] finished tweaking crates.io crate quick_maths 0.2.1
[INFO] tweaked toml for crates.io crate quick_maths 0.2.1 written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 722361fb9dda6384447218c5dffad2ea9594a486798eab2318e2ed157020a08d
[INFO] running `Command { std: "docker" "start" "-a" "722361fb9dda6384447218c5dffad2ea9594a486798eab2318e2ed157020a08d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "722361fb9dda6384447218c5dffad2ea9594a486798eab2318e2ed157020a08d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "722361fb9dda6384447218c5dffad2ea9594a486798eab2318e2ed157020a08d", kill_on_drop: false }`
[INFO] [stdout] 722361fb9dda6384447218c5dffad2ea9594a486798eab2318e2ed157020a08d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dexplicit_range -Dtrait_impl_range -Wrange_syntax -Wrange_bounds" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] daaf7cb3beb3bfa0e42858a35863c4cd94b9751f8ccdd59eb05e850f1c21cc77
[INFO] running `Command { std: "docker" "start" "-a" "daaf7cb3beb3bfa0e42858a35863c4cd94b9751f8ccdd59eb05e850f1c21cc77", kill_on_drop: false }`
[INFO] [stderr]    Compiling num-traits v0.2.18
[INFO] [stderr]    Compiling num-bigint v0.2.6
[INFO] [stderr]    Compiling num-rational v0.2.4
[INFO] [stderr]    Compiling num-complex v0.2.4
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking num-iter v0.1.44
[INFO] [stderr]     Checking num v0.2.1
[INFO] [stderr]     Checking quick_maths v0.2.1 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0557]: feature has been removed
[INFO] [stdout]  --> src/lib.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(const_generics, maybe_uninit_uninit_array, new_uninit, array_map)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^ feature has been removed
[INFO] [stdout]   |
[INFO] [stdout]   = note: removed in favor of `#![feature(adt_const_params)]` and `#![feature(generic_const_exprs)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0557]: feature has been removed
[INFO] [stdout]  --> src/lib.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(const_generics, maybe_uninit_uninit_array, new_uninit, array_map)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^ feature has been removed
[INFO] [stdout]   |
[INFO] [stdout]   = note: removed in favor of `#![feature(adt_const_params)]` and `#![feature(generic_const_exprs)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/mat.rs:30:6
[INFO] [stdout]    |
[INFO] [stdout] 30 |     (0..M).flat_map(move |y| (0..N).map(move |x| &self[x][y]))
[INFO] [stdout]    |      ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-W range-syntax`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/mat.rs:30:31
[INFO] [stdout]    |
[INFO] [stdout] 30 |     (0..M).flat_map(move |y| (0..N).map(move |x| &self[x][y]))
[INFO] [stdout]    |                               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/mat.rs:38:14
[INFO] [stdout]    |
[INFO] [stdout] 38 |     for i in 0..N {
[INFO] [stdout]    |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/mat.rs:48:14
[INFO] [stdout]    |
[INFO] [stdout] 48 |     for i in 0..Q {
[INFO] [stdout]    |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/mat.rs:55:14
[INFO] [stdout]    |
[INFO] [stdout] 55 |     for y in 0..N {
[INFO] [stdout]    |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/mat.rs:56:16
[INFO] [stdout]    |
[INFO] [stdout] 56 |       for x in 0..M {
[INFO] [stdout]    |                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/mat.rs:65:14
[INFO] [stdout]    |
[INFO] [stdout] 65 |     for i in 0..P {
[INFO] [stdout]    |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/mat.rs:87:14
[INFO] [stdout]    |
[INFO] [stdout] 87 |     for i in 0..N {
[INFO] [stdout]    |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/mat.rs:97:14
[INFO] [stdout]    |
[INFO] [stdout] 97 |     for i in 0..N {
[INFO] [stdout]    |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:107:14
[INFO] [stdout]     |
[INFO] [stdout] 107 |     for i in 0..J {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:119:14
[INFO] [stdout]     |
[INFO] [stdout] 119 |     for i in 0..M {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:125:57
[INFO] [stdout]     |
[INFO] [stdout] 125 |   pub fn diag(&self) -> impl Iterator<Item = T> + '_ { (0..M).map(move |i| self[i][i]) }
[INFO] [stdout]     |                                                         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:128:6
[INFO] [stdout]     |
[INFO] [stdout] 128 |     (0..M).flat_map(move |i| (0..M).filter(move |&j| j != i).map(move |j| self[i][j]))
[INFO] [stdout]     |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:128:31
[INFO] [stdout]     |
[INFO] [stdout] 128 |     (0..M).flat_map(move |i| (0..M).filter(move |&j| j != i).map(move |j| self[i][j]))
[INFO] [stdout]     |                               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:133:14
[INFO] [stdout]     |
[INFO] [stdout] 133 |     for i in M..I {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:144:14
[INFO] [stdout]     |
[INFO] [stdout] 144 |     for k in 0..(M - 1) {
[INFO] [stdout]     |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/mat.rs:145:53
[INFO] [stdout]     |
[INFO] [stdout] 145 |       let i = k + argmax(&u.0[k].apply_fn(T::abs).0[k..]);
[INFO] [stdout]     |                                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:146:19
[INFO] [stdout]     |
[INFO] [stdout] 146 |       u.swap_rows(k..M, i, k);
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:147:19
[INFO] [stdout]     |
[INFO] [stdout] 147 |       l.swap_rows(0..k, i, k);
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:148:19
[INFO] [stdout]     |
[INFO] [stdout] 148 |       p.swap_rows(0..M, i, k);
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:149:16
[INFO] [stdout]     |
[INFO] [stdout] 149 |       for j in (k + 1)..M {
[INFO] [stdout]     |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:151:18
[INFO] [stdout]     |
[INFO] [stdout] 151 |         for i in k..M {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:162:15
[INFO] [stdout]     |
[INFO] [stdout] 162 |     for y in (0..M).rev() {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:164:16
[INFO] [stdout]     |
[INFO] [stdout] 164 |       for x in y + 1..M {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/mat.rs:30:6
[INFO] [stdout]    |
[INFO] [stdout] 30 |     (0..M).flat_map(move |y| (0..N).map(move |x| &self[x][y]))
[INFO] [stdout]    |      ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-W range-syntax`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:175:14
[INFO] [stdout]     |
[INFO] [stdout] 175 |     for y in 0..M {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/mat.rs:30:31
[INFO] [stdout]    |
[INFO] [stdout] 30 |     (0..M).flat_map(move |y| (0..N).map(move |x| &self[x][y]))
[INFO] [stdout]    |                               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:177:16
[INFO] [stdout]     |
[INFO] [stdout] 177 |       for x in 0..y.saturating_sub(1) {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:325:14
[INFO] [stdout]     |
[INFO] [stdout] 325 |     for i in 0..M {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/mat.rs:38:14
[INFO] [stdout]    |
[INFO] [stdout] 38 |     for i in 0..N {
[INFO] [stdout]    |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:480:18
[INFO] [stdout]     |
[INFO] [stdout] 480 |         for x in 0..N {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 489 | def_op!(Add, add, +);
[INFO] [stdout]     | -------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `def_op` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/mat.rs:48:14
[INFO] [stdout]    |
[INFO] [stdout] 48 |     for i in 0..Q {
[INFO] [stdout]    |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/mat.rs:55:14
[INFO] [stdout]    |
[INFO] [stdout] 55 |     for y in 0..N {
[INFO] [stdout]    |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/mat.rs:56:16
[INFO] [stdout]    |
[INFO] [stdout] 56 |       for x in 0..M {
[INFO] [stdout]    |                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:480:18
[INFO] [stdout]     |
[INFO] [stdout] 480 |         for x in 0..N {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 490 | def_op!(Sub, sub, -);
[INFO] [stdout]     | -------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `def_op` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/mat.rs:65:14
[INFO] [stdout]    |
[INFO] [stdout] 65 |     for i in 0..P {
[INFO] [stdout]    |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:480:18
[INFO] [stdout]     |
[INFO] [stdout] 480 |         for x in 0..N {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 491 | def_op!(Mul, mul, *);
[INFO] [stdout]     | -------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `def_op` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/mat.rs:87:14
[INFO] [stdout]    |
[INFO] [stdout] 87 |     for i in 0..N {
[INFO] [stdout]    |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/mat.rs:97:14
[INFO] [stdout]    |
[INFO] [stdout] 97 |     for i in 0..N {
[INFO] [stdout]    |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:480:18
[INFO] [stdout]     |
[INFO] [stdout] 480 |         for x in 0..N {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 492 | def_op!(Div, div, /);
[INFO] [stdout]     | -------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `def_op` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:107:14
[INFO] [stdout]     |
[INFO] [stdout] 107 |     for i in 0..J {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:119:14
[INFO] [stdout]     |
[INFO] [stdout] 119 |     for i in 0..M {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:499:18
[INFO] [stdout]     |
[INFO] [stdout] 499 |         for x in 0..N {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 508 | def_scalar_op!(Add<T>, add, +);
[INFO] [stdout]     | ------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `def_scalar_op` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:499:18
[INFO] [stdout]     |
[INFO] [stdout] 499 |         for x in 0..N {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 509 | def_scalar_op!(Sub<T>, sub, -);
[INFO] [stdout]     | ------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `def_scalar_op` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:125:57
[INFO] [stdout]     |
[INFO] [stdout] 125 |   pub fn diag(&self) -> impl Iterator<Item = T> + '_ { (0..M).map(move |i| self[i][i]) }
[INFO] [stdout]     |                                                         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:128:6
[INFO] [stdout]     |
[INFO] [stdout] 128 |     (0..M).flat_map(move |i| (0..M).filter(move |&j| j != i).map(move |j| self[i][j]))
[INFO] [stdout]     |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:499:18
[INFO] [stdout]     |
[INFO] [stdout] 499 |         for x in 0..N {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 510 | def_scalar_op!(Mul<T>, mul, *);
[INFO] [stdout]     | ------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `def_scalar_op` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:128:31
[INFO] [stdout]     |
[INFO] [stdout] 128 |     (0..M).flat_map(move |i| (0..M).filter(move |&j| j != i).map(move |j| self[i][j]))
[INFO] [stdout]     |                               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:499:18
[INFO] [stdout]     |
[INFO] [stdout] 499 |         for x in 0..N {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 511 | def_scalar_op!(Div<T>, div, /);
[INFO] [stdout]     | ------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `def_scalar_op` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:133:14
[INFO] [stdout]     |
[INFO] [stdout] 133 |     for i in M..I {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/vec.rs:35:14
[INFO] [stdout]    |
[INFO] [stdout] 35 |     for i in 0..N {
[INFO] [stdout]    |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/vec.rs:78:14
[INFO] [stdout]    |
[INFO] [stdout] 78 |     for i in 0..N {
[INFO] [stdout]    |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:144:14
[INFO] [stdout]     |
[INFO] [stdout] 144 |     for k in 0..(M - 1) {
[INFO] [stdout]     |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/mat.rs:145:53
[INFO] [stdout]     |
[INFO] [stdout] 145 |       let i = k + argmax(&u.0[k].apply_fn(T::abs).0[k..]);
[INFO] [stdout]     |                                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/vec.rs:92:39
[INFO] [stdout]    |
[INFO] [stdout] 92 |   pub fn dot(&self, o: &Self) -> T { (0..N).fold(T::zero(), |acc, n| acc + self[n] * o[n]) }
[INFO] [stdout]    |                                       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/vec.rs:116:14
[INFO] [stdout]     |
[INFO] [stdout] 116 |     for i in 0..N {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:146:19
[INFO] [stdout]     |
[INFO] [stdout] 146 |       u.swap_rows(k..M, i, k);
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/vec.rs:126:14
[INFO] [stdout]     |
[INFO] [stdout] 126 |     for i in 1..N {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:147:19
[INFO] [stdout]     |
[INFO] [stdout] 147 |       l.swap_rows(0..k, i, k);
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:148:19
[INFO] [stdout]     |
[INFO] [stdout] 148 |       p.swap_rows(0..M, i, k);
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/vec.rs:136:14
[INFO] [stdout]     |
[INFO] [stdout] 136 |     for i in 1..N {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/vec.rs:145:14
[INFO] [stdout]     |
[INFO] [stdout] 145 |     for i in 0..N {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:149:16
[INFO] [stdout]     |
[INFO] [stdout] 149 |       for j in (k + 1)..M {
[INFO] [stdout]     |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/vec.rs:155:14
[INFO] [stdout]     |
[INFO] [stdout] 155 |     for i in 0..M {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:151:18
[INFO] [stdout]     |
[INFO] [stdout] 151 |         for i in k..M {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/vec.rs:165:14
[INFO] [stdout]     |
[INFO] [stdout] 165 |     for i in 0..N {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:162:15
[INFO] [stdout]     |
[INFO] [stdout] 162 |     for y in (0..M).rev() {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/vec.rs:186:14
[INFO] [stdout]     |
[INFO] [stdout] 186 |     for i in 0..N {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:164:16
[INFO] [stdout]     |
[INFO] [stdout] 164 |       for x in y + 1..M {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/vec.rs:187:16
[INFO] [stdout]     |
[INFO] [stdout] 187 |       for j in 0..M {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:175:14
[INFO] [stdout]     |
[INFO] [stdout] 175 |     for y in 0..M {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/vec.rs:202:14
[INFO] [stdout]     |
[INFO] [stdout] 202 |     for i in 0..N {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:177:16
[INFO] [stdout]     |
[INFO] [stdout] 177 |       for x in 0..y.saturating_sub(1) {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:325:14
[INFO] [stdout]     |
[INFO] [stdout] 325 |     for i in 0..M {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:480:18
[INFO] [stdout]     |
[INFO] [stdout] 480 |         for x in 0..N {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 489 | def_op!(Add, add, +);
[INFO] [stdout]     | -------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `def_op` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/vec.rs:394:18
[INFO] [stdout]     |
[INFO] [stdout] 394 |           for i in 0..N {
[INFO] [stdout]     |                    ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 411 | / assign_op!(
[INFO] [stdout] 412 | |   AddAssign, add_assign, +=;
[INFO] [stdout] 413 | |   SubAssign, sub_assign, -=;
[INFO] [stdout] 414 | |   MulAssign, mul_assign, *=;
[INFO] [stdout] ...   |
[INFO] [stdout] 421 | |   BitXorAssign, bitxor_assign, ^=;
[INFO] [stdout] 422 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `assign_op` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:480:18
[INFO] [stdout]     |
[INFO] [stdout] 480 |         for x in 0..N {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 490 | def_op!(Sub, sub, -);
[INFO] [stdout]     | -------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `def_op` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:480:18
[INFO] [stdout]     |
[INFO] [stdout] 480 |         for x in 0..N {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 491 | def_op!(Mul, mul, *);
[INFO] [stdout]     | -------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `def_op` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/vec.rs:402:18
[INFO] [stdout]     |
[INFO] [stdout] 402 |           for i in 0..N {
[INFO] [stdout]     |                    ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 411 | / assign_op!(
[INFO] [stdout] 412 | |   AddAssign, add_assign, +=;
[INFO] [stdout] 413 | |   SubAssign, sub_assign, -=;
[INFO] [stdout] 414 | |   MulAssign, mul_assign, *=;
[INFO] [stdout] ...   |
[INFO] [stdout] 421 | |   BitXorAssign, bitxor_assign, ^=;
[INFO] [stdout] 422 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `assign_op` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/vec.rs:536:14
[INFO] [stdout]     |
[INFO] [stdout] 536 |     for i in 0..N {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]   --> src/autodiff.rs:57:15
[INFO] [stdout]    |
[INFO] [stdout] 57 |     for i in (0..=start).rev() {
[INFO] [stdout]    |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/dynamics/array.rs:16:17
[INFO] [stdout]    |
[INFO] [stdout] 16 |     let data = (0..shape.iter().product())
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:480:18
[INFO] [stdout]     |
[INFO] [stdout] 480 |         for x in 0..N {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 492 | def_op!(Div, div, /);
[INFO] [stdout]     | -------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `def_op` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/dynamics/array.rs:117:14
[INFO] [stdout]     |
[INFO] [stdout] 117 |     for i in 0..self.shape[0] {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:499:18
[INFO] [stdout]     |
[INFO] [stdout] 499 |         for x in 0..N {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 508 | def_scalar_op!(Add<T>, add, +);
[INFO] [stdout]     | ------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `def_scalar_op` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/dynamics/array.rs:118:16
[INFO] [stdout]     |
[INFO] [stdout] 118 |       for j in 0..self.shape[1] {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/dynamics/array.rs:119:18
[INFO] [stdout]     |
[INFO] [stdout] 119 |         for k in 0..o.shape[1] {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:499:18
[INFO] [stdout]     |
[INFO] [stdout] 499 |         for x in 0..N {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 509 | def_scalar_op!(Sub<T>, sub, -);
[INFO] [stdout]     | ------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `def_scalar_op` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/dynamics/array.rs:143:18
[INFO] [stdout]     |
[INFO] [stdout] 143 |         for i in 0..self.shape[0] {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:499:18
[INFO] [stdout]     |
[INFO] [stdout] 499 |         for x in 0..N {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 510 | def_scalar_op!(Mul<T>, mul, *);
[INFO] [stdout]     | ------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `def_scalar_op` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/dynamics/array.rs:144:20
[INFO] [stdout]     |
[INFO] [stdout] 144 |           for j in 0..self.shape[1] {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/dynamics/tensor.rs:94:16
[INFO] [stdout]    |
[INFO] [stdout] 94 |       for i in 0..N {
[INFO] [stdout]    |                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/mat.rs:499:18
[INFO] [stdout]     |
[INFO] [stdout] 499 |         for x in 0..N {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 511 | def_scalar_op!(Div<T>, div, /);
[INFO] [stdout]     | ------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `def_scalar_op` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/dynamics/tensor.rs:95:18
[INFO] [stdout]    |
[INFO] [stdout] 95 |         for j in 0..M {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/vec.rs:35:14
[INFO] [stdout]    |
[INFO] [stdout] 35 |     for i in 0..N {
[INFO] [stdout]    |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/vec.rs:78:14
[INFO] [stdout]    |
[INFO] [stdout] 78 |     for i in 0..N {
[INFO] [stdout]    |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/vec.rs:92:39
[INFO] [stdout]    |
[INFO] [stdout] 92 |   pub fn dot(&self, o: &Self) -> T { (0..N).fold(T::zero(), |acc, n| acc + self[n] * o[n]) }
[INFO] [stdout]    |                                       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/vec.rs:116:14
[INFO] [stdout]     |
[INFO] [stdout] 116 |     for i in 0..N {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/vec.rs:126:14
[INFO] [stdout]     |
[INFO] [stdout] 126 |     for i in 1..N {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/vec.rs:136:14
[INFO] [stdout]     |
[INFO] [stdout] 136 |     for i in 1..N {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/vec.rs:145:14
[INFO] [stdout]     |
[INFO] [stdout] 145 |     for i in 0..N {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/vec.rs:155:14
[INFO] [stdout]     |
[INFO] [stdout] 155 |     for i in 0..M {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/vec.rs:165:14
[INFO] [stdout]     |
[INFO] [stdout] 165 |     for i in 0..N {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/vec.rs:186:14
[INFO] [stdout]     |
[INFO] [stdout] 186 |     for i in 0..N {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/vec.rs:187:16
[INFO] [stdout]     |
[INFO] [stdout] 187 |       for j in 0..M {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/vec.rs:202:14
[INFO] [stdout]     |
[INFO] [stdout] 202 |     for i in 0..N {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/vec.rs:394:18
[INFO] [stdout]     |
[INFO] [stdout] 394 |           for i in 0..N {
[INFO] [stdout]     |                    ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 411 | / assign_op!(
[INFO] [stdout] 412 | |   AddAssign, add_assign, +=;
[INFO] [stdout] 413 | |   SubAssign, sub_assign, -=;
[INFO] [stdout] 414 | |   MulAssign, mul_assign, *=;
[INFO] [stdout] ...   |
[INFO] [stdout] 421 | |   BitXorAssign, bitxor_assign, ^=;
[INFO] [stdout] 422 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `assign_op` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/vec.rs:402:18
[INFO] [stdout]     |
[INFO] [stdout] 402 |           for i in 0..N {
[INFO] [stdout]     |                    ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 411 | / assign_op!(
[INFO] [stdout] 412 | |   AddAssign, add_assign, +=;
[INFO] [stdout] 413 | |   SubAssign, sub_assign, -=;
[INFO] [stdout] 414 | |   MulAssign, mul_assign, *=;
[INFO] [stdout] ...   |
[INFO] [stdout] 421 | |   BitXorAssign, bitxor_assign, ^=;
[INFO] [stdout] 422 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `assign_op` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/vec.rs:536:14
[INFO] [stdout]     |
[INFO] [stdout] 536 |     for i in 0..N {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]   --> src/autodiff.rs:57:15
[INFO] [stdout]    |
[INFO] [stdout] 57 |     for i in (0..=start).rev() {
[INFO] [stdout]    |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/dynamics/array.rs:16:17
[INFO] [stdout]    |
[INFO] [stdout] 16 |     let data = (0..shape.iter().product())
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/dynamics/array.rs:117:14
[INFO] [stdout]     |
[INFO] [stdout] 117 |     for i in 0..self.shape[0] {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/dynamics/array.rs:118:16
[INFO] [stdout]     |
[INFO] [stdout] 118 |       for j in 0..self.shape[1] {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/dynamics/array.rs:119:18
[INFO] [stdout]     |
[INFO] [stdout] 119 |         for k in 0..o.shape[1] {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/dynamics/array.rs:143:18
[INFO] [stdout]     |
[INFO] [stdout] 143 |         for i in 0..self.shape[0] {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/dynamics/array.rs:144:20
[INFO] [stdout]     |
[INFO] [stdout] 144 |           for j in 0..self.shape[1] {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/dynamics/tensor.rs:94:16
[INFO] [stdout]    |
[INFO] [stdout] 94 |       for i in 0..N {
[INFO] [stdout]    |                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/dynamics/tensor.rs:95:18
[INFO] [stdout]    |
[INFO] [stdout] 95 |         for j in 0..M {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `array_map` has been stable since 1.55.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/lib.rs:2:67
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(const_generics, maybe_uninit_uninit_array, new_uninit, array_map)]
[INFO] [stdout]   |                                                                   ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `array_map` has been stable since 1.55.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/lib.rs:2:67
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(const_generics, maybe_uninit_uninit_array, new_uninit, array_map)]
[INFO] [stdout]   |                                                                   ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: mutable reference of mutable static is discouraged
[INFO] [stdout]   --> src/autodiff.rs:12:47
[INFO] [stdout]    |
[INFO] [stdout] 12 | fn tape_mut() -> &'static mut Tape { unsafe { &mut DEFAULT_TAPE } }
[INFO] [stdout]    |                                               ^^^^^^^^^^^^^^^^^ mutable reference of mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see issue #114447 <https://github.com/rust-lang/rust/issues/114447>
[INFO] [stdout]    = note: reference of mutable static is a hard error from 2024 edition
[INFO] [stdout]    = note: mutable statics can be written to by multiple threads: aliasing violations or data races will cause undefined behavior
[INFO] [stdout]    = note: `#[warn(static_mut_ref)]` on by default
[INFO] [stdout] help: mutable references are dangerous since if there's any other pointer or reference used for that static while the reference lives, that's UB; use `addr_of_mut!` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 12 | fn tape_mut() -> &'static mut Tape { unsafe { addr_of_mut!(DEFAULT_TAPE) } }
[INFO] [stdout]    |                                               ~~~~~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: mutable reference of mutable static is discouraged
[INFO] [stdout]   --> src/autodiff.rs:12:47
[INFO] [stdout]    |
[INFO] [stdout] 12 | fn tape_mut() -> &'static mut Tape { unsafe { &mut DEFAULT_TAPE } }
[INFO] [stdout]    |                                               ^^^^^^^^^^^^^^^^^ mutable reference of mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see issue #114447 <https://github.com/rust-lang/rust/issues/114447>
[INFO] [stdout]    = note: reference of mutable static is a hard error from 2024 edition
[INFO] [stdout]    = note: mutable statics can be written to by multiple threads: aliasing violations or data races will cause undefined behavior
[INFO] [stdout]    = note: `#[warn(static_mut_ref)]` on by default
[INFO] [stdout] help: mutable references are dangerous since if there's any other pointer or reference used for that static while the reference lives, that's UB; use `addr_of_mut!` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 12 | fn tape_mut() -> &'static mut Tape { unsafe { addr_of_mut!(DEFAULT_TAPE) } }
[INFO] [stdout]    |                                               ~~~~~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: shared reference of mutable static is discouraged
[INFO] [stdout]   --> src/autodiff.rs:13:39
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn tape() -> &'static Tape { unsafe { &DEFAULT_TAPE } }
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^ shared reference of mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see issue #114447 <https://github.com/rust-lang/rust/issues/114447>
[INFO] [stdout]    = note: reference of mutable static is a hard error from 2024 edition
[INFO] [stdout]    = note: mutable statics can be written to by multiple threads: aliasing violations or data races will cause undefined behavior
[INFO] [stdout] help: shared references are dangerous since if there's any kind of mutation of that static while the reference lives, that's UB; use `addr_of!` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn tape() -> &'static Tape { unsafe { addr_of!(DEFAULT_TAPE) } }
[INFO] [stdout]    |                                       ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: shared reference of mutable static is discouraged
[INFO] [stdout]   --> src/autodiff.rs:13:39
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn tape() -> &'static Tape { unsafe { &DEFAULT_TAPE } }
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^ shared reference of mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see issue #114447 <https://github.com/rust-lang/rust/issues/114447>
[INFO] [stdout]    = note: reference of mutable static is a hard error from 2024 edition
[INFO] [stdout]    = note: mutable statics can be written to by multiple threads: aliasing violations or data races will cause undefined behavior
[INFO] [stdout] help: shared references are dangerous since if there's any kind of mutation of that static while the reference lives, that's UB; use `addr_of!` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn tape() -> &'static Tape { unsafe { addr_of!(DEFAULT_TAPE) } }
[INFO] [stdout]    |                                       ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]    --> src/dynamics/tensor.rs:165:7
[INFO] [stdout]     |
[INFO] [stdout] 165 |   let v = Vec3::of(3.0);
[INFO] [stdout]     |       ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/dynamics/tensor.rs:167:7
[INFO] [stdout]     |
[INFO] [stdout] 167 |   let t = m.dyn_tensor();
[INFO] [stdout]     |       ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error; 62 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0557`.
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error; 64 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0557`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `quick_maths` (lib) due to 2 previous errors; 62 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `quick_maths` (lib test) due to 2 previous errors; 64 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "daaf7cb3beb3bfa0e42858a35863c4cd94b9751f8ccdd59eb05e850f1c21cc77", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "daaf7cb3beb3bfa0e42858a35863c4cd94b9751f8ccdd59eb05e850f1c21cc77", kill_on_drop: false }`
[INFO] [stdout] daaf7cb3beb3bfa0e42858a35863c4cd94b9751f8ccdd59eb05e850f1c21cc77
